﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace LabaCS3
{
    public partial class Add : Form
    {
        public Add()
        {
            InitializeComponent();

        }

        public void fillBook(Book cbook)
        {
            String cs;
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                cs = listBox1.Items[i].ToString();
                cbook.AddChapter(new Chapter(cs));

            }

        }
        public void GetChapterFromBook(Book cbook)
        {
            listBox1.Items.Clear();
            foreach (Chapter cg in cbook)
            {
                listBox1.Items.Add(cg.chapters);

            }


        }
        public String Title
        {
            get { return название.Text; }
            set { название.Text = value; }
        }
        public String Author
        {
            get { return (автор.Text); }
            set { автор.Text = value; }
        }

        public double Cost
        {
            get {return Convert.ToDouble(стоимость.Text);}
            set {стоимость.Text = value.ToString();}

        }



        private void Form3_Load(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {



            if (название.Text.Equals("") || автор.Text.Equals("") || стоимость.Text.Equals(""))
            {
                 MessageBox.Show("Вы ввели не все данные!", "Ошибка", MessageBoxButtons.OK);
            
            }
            else
            {
                Regex reg = new Regex(@"[^0-9.]");
                //Match str = reg.Match(стоимость.Text);
                
                if (reg.IsMatch(стоимость.Text))
                {
                    MessageBox.Show("Вы ввели не цифры(стоимость не может быть отрицательной)!", "Ошибка", MessageBoxButtons.OK);

                }
                else
                {
                    string str = стоимость.Text;
                    //string str = "17.45";

                    double numb; 

                    Regex regCop = new Regex(@"[0-9]+.[0-9]{2}");
                    //Match str = reg.Match(стоимость.Text);
                    Regex regNoRub = new Regex(@"[^0-9]");

                    if (!regNoRub.IsMatch(str))
                    {

                        numb = Convert.ToDouble(str);

                    }
                    else if (regCop.IsMatch(str))
                    {

                        Match match = regCop.Match(str);
                        string found = "";
                        if (match.Success)
                        {
                            found = match.Value;
                        }

                        string rub = found.Substring(0, found.Length - 3);
                        string cop = found.Substring(found.Length - 2, 2);

                        numb = Convert.ToDouble(rub) + Convert.ToDouble(cop) / 100;

                    }
                    else
                    {

                        MessageBox.Show("Вы ввели не деньги!", "Ошибка", MessageBoxButtons.OK);

                    }

                    this.DialogResult = DialogResult.OK;
                    Close();

                    //if (numb < 0.0)
                    //{
                    //    MessageBox.Show("Вы ввели отрицательное число", "Ошибка", MessageBoxButtons.OK);
                    //}
                    //else
                    //{
                    //    this.DialogResult = DialogResult.OK;
                    //    Close();
                    //}
                }
            }




        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int cIndex = listBox1.SelectedIndex;
            if (cIndex >= 0)
            {
                textBox1.Text = listBox1.Items[cIndex].ToString();

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add(textBox1.Text);
            textBox1.Text = "";

        }

        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex >= 0)
                listBox1.Items.RemoveAt(listBox1.SelectedIndex);
        }

        private void textBox2_TextChanged_1(object sender, EventArgs e)
        {

        }

        private void button5_Click(object sender, EventArgs e)
        {
            int cIndex = listBox1.SelectedIndex;
            if (cIndex >= 0)
            {
                listBox1.Items[cIndex] = textBox1.Text.ToString();

                //listBox1.Items.Insert(cIndex, textBox1.ToString());
                //listBox1.Items.RemoveAt(cIndex + 1);


            }
        }


    }
}